using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace CinemaLib
{
    /// <summary>
    /// Service Contract interface used in WCF.
    /// </summary>
    [ServiceContract]
    public interface IBookingService
    {
        [OperationContract]
        void CreateUser(User user);

        [OperationContract]
        User VerifyUser(string usename, string passcode);

        [OperationContract]
        Reservation BeginReservation(Show show);

        [OperationContract]
        void UpdateReservation(Reservation reservation);

        [OperationContract]
        void Order(Reservation reservation);

        [OperationContract]
        void Cancel(string reservationid);

        [OperationContract]
        Hall GetHall(int hallid, int showid);

        [OperationContract]
        List<Show> GetShow(string searchword, DateTime searchstarttime, DateTime searchendtime);

        [OperationContract]
        List<Show> GetSchedule(string hallid, DateTime searchtime);

        [OperationContract]
        List<Show> GetShowWithMovie(Movie movie, DateTime searchtime, DateTime searchendtime);

        [OperationContract]
        List<Movie> GetNewestMovies(int number);
    }
}